package org.ReportDesigner.reportModel;

import org.ReportDesigner.configurator.Configuration;
import org.ReportDesigner.controlModel.Type;
import com.itextpdf.text.*;
import com.itextpdf.text.pdf.PdfPCell;
import com.itextpdf.text.pdf.PdfPTable;
import org.apache.log4j.Logger;

import java.util.LinkedList;
import java.util.List;

@Type(type = "container", subType = "tableBody", name = "trow")
public class Row extends ReportElement {
    private static final Logger log = Logger.getLogger(Row.class);

    @Override
    @Deprecated
    public String getText() {
        throw new Error("Method is`nt supported");
    }

    @Override
    @Deprecated
    public void setText(String text) {
        throw new Error("Method is`nt supported");
    }

    @Override
    public void addToDocument(Configuration configuration, Document document) throws DocumentException {
        PdfPTable row = new PdfPTable(this.getBody().size());
        for (Element element: addTo(configuration)){
            PdfPCell cell = new PdfPCell();
            cell.addElement(element);
            row.addCell(cell);
        }
        document.add(row);

    }

    @Override
    public List<Element> addTo(Configuration configuration) {
        List<Element> list = new LinkedList<Element>();
        //получаем список всех cell в строке и добавляем их в цикле
        // в строку
        for (ReportElement cell: this.getBody()){
            //добавляем ячейку в строку предварительно получив ее содержимое
            // методом  cell.addTo(configuration)
            list.addAll(cell.addTo(configuration));
        }
        return list;
    }
}
